import router from './router'
import store from '@/store/'
import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
import getPageTitle from '@/utils/get-page-title.js'

const whiteList = ['/login', '/404'] // no redirect whitelist
// 路由的前置守卫
router.beforeEach(async(to, from, next) => {
  NProgress.start()// 开启进度条
  // 获取token
  const token = store.getters.token
  // 有token
  if (token) {
    // 有token还想去登录页
    if (to.path === '/login') {
      next('/') // 强制跳转到首页
      // 重定向会导致上一次路由中断,启动的进度条需要手动关闭
      NProgress.done()
    } else {
      next()
      if (!store.getters.name) {
        await store.dispatch('user/getUserInfoActions')
      }
      next()
    }
    // 没有token
  } else {
    // 要去的属于白名单的
    if (whiteList.includes(to.path)) {
      next()
      // 要去的不是白名单的,强制去登录页
    } else {
      next('/login')
      NProgress.done()
    }
  }
})
// 路由后置守卫
router.afterEach((to, from) => {
  // 关闭进度条
  NProgress.done()
  // 网页切换完毕 在设置当前切换完毕的这个页面的标题
  console.log(to) // 打印看看to里面有什么
  // document指的是整个网页的文档固定写法
  document.title = getPageTitle(to.meta.title)
})
